Assemblersprog

Denne artikel bør gennemlæses af en person med fagkendskab for at sikre den faglige korrekthed.
Eksempel på assemblersprog

Assemblersprog (eller assembler-kode, assembly-kode) er i praksis en symbolsk måde at udtrykke maskinkode på, eventuelt kombineret med et simpelt makrosystem. Oversættelsen fra assemblersprog til maskinkode varetages af en assembler. Da maskinkoden og dermed assemblersproget afhænger af CPU'en, taler man eksempelvis om x86-assembler, PowerPC-assembler, etc. Assemblersprogets muligheder er også afhængigt af, hvilket styresystem, der bruges. Man taler også tit om forskellige dialekter af assemblersprog, tit defineret af den benyttede assembler. Der findes flere forskellige assembler som eksempelvis FASM, TASM, MASM, og GAS mm.

Assemblersprog benævnes som et 2. niveau programmeringssprog, altså et lav-niveau sprog som ikke direkte understøtter abstrakte syntaks-konstruktioner som eksempelvis IF/ELSE- og SWITCH-forgreninger, FOR- og WHILE/DOWHILE-løkker og ikke mindst variabler, som alle er understøttet af syntaksen i langt de fleste høj-niveau sprog, som eksempelvis C, C++ og Java. Man kan sige at dette niveau beskriver et sprogs abstraktion-niveau. Et sprogs abstraktions-niveau betegner hvor langt væk syntaksen i et programmeringsprog gør det muligt for programmøren at abstrahere væk fra den underliggende hardware-nære logik. Jo mere dette er muligt, jo mere abstrakt er sproget og jo højere niveau kan et programmeringssprog siges at have. Assemblersprog har en lav abstraktion og maskinkode kan siges at have en endnu lavere abstraktion.

Den primære fordel ved assemblersproget er, at man kan lave hardware-nære optimeringer, der ikke er mulige i langt de fleste høj-niveau sprog. Ulempen er at det kan synes besværligt at skrive i, grundet sprogets lave abstraktions-niveau. En assembler-programmør skal have en dybdegående teknisk forståelse for hvordan den benyttede CPU fungerer internt, samt hvordan problemet der forsøges løst, bedst kan udtrykkes som små bider af meget specifik logik. Assemblersprogets opbygning vil for det meste have den effekt at den skrevne kode vil fylde betydelig mere i antal linjer, end kode med samme funktionalitet, skrevet i eksempelvis C, C++ eller Pascal. Typisk skrives de fleste applikationers kode i et høj-niveau sprog, og hvis det derefter er nødvendigt, kan kritiske dele omskrives i assemblersprog.

Assemblersproget er i dag ikke så meget anvendt på PC, men anvendes stadig i mikrocontrollere. Men da computerne var ganske små, brugte man det, da man ikke forventede at portere det til andre processorarkitekturer. Når det stadig bruges, er det fordi det giver direkte adgang til hardware-chipsene. Man er ikke bundet til et højere sprogs compiler eller fortolker, men til systemets hardware-arkitektur og dermed CPU’en og chipsene. I undervisningsøjemed og selvlæring giver assemblerprogrammering et godt indblik i, hvordan et computersystem virker.


Developed by StudentB